home *** CD-ROM | disk | FTP | other *** search
/ Tiger Disk 53 / Tiger_Disk_053_1998-08_Tiger-Crew-Disk_de_Side_B.d64 / petscii > td.src < prev    next >
Text File  |  2023-02-26  |  7KB  |  234 lines

  1.  \ba $0801
  2.  \on "petscii > td.obj,p,w",s
  3. ;--------------------------------------
  4. ;version vom 28.03.1998 by willcox
  5. ;modifiziert von:            am:
  6. ;--------------------------------------
  7. ;entstanden als kursbegleitendes
  8. ;beispielprogramm.
  9. ;--------------------------------------
  10. ;dieses programm liest ein petscii-file
  11. ;(seq),fuellt die zeilen mit spaces auf
  12. ;und konvertiert dies in das notemaker-
  13. ;format,inclusive wandlung aller gross-
  14. ;buchstaben zu zeichensatz 1 (klein).
  15. ;--------------------------------------
  16. ;aenderungsvorschlaege:
  17. ;- abfrage des fehlerkanals
  18. ;  (file not found,write protect on,..)
  19. ;- unterdruecken von steuerzeichen
  20. ;  (farbe, cursor) beim einlesen.
  21. ;--------------------------------------
  22. ;bei aenderungen dieses programm zwecks
  23. ;veroeffentlichung schicken an:
  24. ;
  25. ;tiger disk
  26. ;feldstr. 17
  27. ;36391 sinntal
  28. ;--------------------------------------
  29.  \la st=144
  30.  \la clrscr=$e544
  31.  \la bsout=$ffd2
  32.  \la basin=$ffcf
  33.  \la strout=$ab1e
  34.  \la parama=$ffba
  35.  \la paramb=$ffbd
  36.  \la chkout=$ffc9
  37.  \la clrch=$ffcc
  38.  \la chkin=$ffc6
  39.  \la open=$ffc0
  40.  \la close=$ffc3
  41. ;-------------1998 sys2061-------------
  42.  \by $0b,8,$ce,7,$9e,50,48,54,49,0,0,0
  43. ;--------------------------------------
  44. anfang:
  45.           lda #0          ;bildschirm-
  46.           sta $d020       ;rahmenfarbe
  47.           sta $d021       ;=schwarz.
  48.           lda #15         ;zeichenfarbe
  49.           sta 646         ;=grau.
  50.           lda #<string1   ;text -
  51.           ldy #>string1   ;ausgeben.
  52.           jsr strout
  53.           lda #<lesename  ;subroutine
  54.           ldx #>lesename  ;fuer eingabe
  55.           jsr nimmname    ;filename.
  56.           bcs anfang     ;name>16=error
  57.           tya             ;laenge auf -
  58.           clc             ;+",s,r" -
  59.           adc #4          ;erweitern.
  60.           sta laenge1
  61.           tay             ;aendere von-
  62.           dey             ;1 auf von 0.
  63.           ldx #3
  64. artloop1:
  65.           lda sr,x        ;",s,r" an -
  66.           sta lesename,y ;namen haengen
  67.           dey
  68.           dex
  69.           bpl artloop1
  70.           lda #<string2   ;text -
  71.           ldy #>string2   ;ausgeben.
  72.           jsr strout
  73.           lda #<schreibname;eingabe des
  74.           ldx#>schreibname;outputnamens
  75.           jsr nimmname
  76.           bcs anfang      ;mehr als 16z
  77.           tya            ;laenge=laenge
  78.           clc             ;plus ",p,w"
  79.           adc #4
  80.           sta laenge2
  81.           tay
  82.           dey
  83.           ldx #3
  84. artloop2:
  85.           lda pw,x        ;",p,w" -
  86.           sta schreibname,y
  87.           dey             ;an namen -
  88.           dex             ;haengen.
  89.           bpl artloop2
  90.           lda #1          ;filenummer 1
  91.           ldx #8          ;drive 8
  92.           ldy #2         ;sekundaeradr.
  93.           jsr parama      ;uebergeben.
  94.           lda laenge1     ;laenge name1
  95.           ldx #<lesename ;lo-byte name1
  96.           ldy #>lesename ;hi-byte name1
  97.           jsr paramb      ;uebergeben.
  98.           jsr open       ;open lesefile
  99.           lda #2          ;filenummer 2
  100.           ldx #8          ;drive 8
  101.           ldy #3         ;sekundaeradr.
  102.           jsr parama      ;uebergeben
  103.           lda laenge2     ;laenge name2
  104.           ldx #<schreibname
  105.           ldy #>schreibname
  106.           jsr paramb      ;uebergeben
  107.           jsr open        ;op.writefile
  108.           ldx #2          ;schreibfile-
  109.           jsr chkout      ;auf ausgabe.
  110.           lda #32         ;ladeadresse-
  111.           jsr bsout       ;simulieren.
  112.           jsr bsout
  113.           jsr clrch       ;input reset.
  114. loop0:
  115.           lda #163        ;bildschirm -
  116.           sta $d011       ;ausschalten.
  117. start:
  118.           jsr clrscr     ;bild loeschen
  119.           ldx #1         ;readfile auf-
  120.           jsr chkin       ;eingabe.
  121.           ldx #0
  122. loop1:
  123.           lda st          ;status -
  124.           sta $02         ;merken.
  125.           bne ende        ;<> 0 = ende
  126.           jsr basin      ;lese 1 zeichn
  127.           inc $d020       ;rahmenfarbe
  128.           and #$7f        ;aus A mach a
  129.           cmp #13         ;return?
  130.           beq ende        ;=zeilenende.
  131.           jsr bsout       ;print auf -
  132.           inx             ;bildschirm.
  133.           cpx #80         ;80 zeichen -
  134. ;                         ;und immer -
  135. ;                         ;noch kein -
  136. ;                         ;return?
  137.           bne loop1
  138. ende:
  139.           lda #40        ;setze counter
  140.           cpx #41         ;wieviel -
  141. ;                         ;zeichen -
  142. ;                         ;wurden -
  143. ;                         ;geprintet?
  144. ;                         ;mehr als 40?
  145.           bcc modify
  146.           lda #80         ;dann setze -
  147. ;                         ;counter auf-
  148. ;                         ;80.
  149. modify:
  150.           sta aendere+1  ;selbstmodifi-
  151. ;                         ;kation.
  152.           jsr clrch       ;input reset
  153.           ldx #2          ;writefile -
  154.           jsr chkout      ;auf ausgabe.
  155.           ldx #0          ;zaehler = 0
  156. loop2:
  157.           lda $0400,x     ;lese screen.
  158.           and #63         ;wandle alles
  159. ;                         ;in zeichen-
  160. ;                         ;satz 1
  161.           jsr bsout       ;schreibe in-
  162. ;                         ;file 2.
  163.           inc $d020       ;rahmenfarbe.
  164.           inx
  165. aendere:
  166.           cpx #40         ;40 oder 80 -
  167. ;                         ;je nach -
  168. ;                        ;selbstmodifi-
  169. ;                         ;kation.
  170. ;                         ;bedeutung:
  171. ;                         ;wurde zeile-
  172. ;                         ;schon kom-
  173. ;                        ;plett gelesen
  174. ;                         ;incl.spaces?
  175.           bcc loop2
  176.           jsr clrch       ;input reset.
  177.           lda $02         ;lesestatus
  178.           beq start       ;schon eof?
  179.           lda #1          ;close file 1
  180.           jsr close
  181.           lda #2          ;close file2
  182.           jsr close
  183.           lda #27        ;bildschirm an
  184.           sta $d011
  185.           lda #0          ;rahmenfarbe=
  186.           sta $d020       ;schwarz.
  187.           jmp anfang      ;neubeginn.
  188. ;--------------------------------------
  189. nimmname:
  190.           sta $22         ;pointer auf-
  191.           stx $23         ;filenamen.
  192.           ldy #0          ;zaehler = 0.
  193. menu1:
  194.           jsr basin      ;input tastat.
  195.           cmp #13         ;return?
  196.           beq menu2
  197.           sta ($22),y    ;im ram merken
  198.           iny
  199.           bne menu1
  200. menu2:
  201.           cpy #17         ;mehr als 16-
  202. ;                         ;zeichen ein-
  203. ;                         ;gegeben?
  204. ;                         ;dann carry=1
  205.           rts
  206. ;--------------------------------------
  207. string1:
  208.  \by 147,142
  209.  \tx "convert petscii to notemaker"
  210.  \by 13
  211.  \tx "by willcox for tiger tisk"
  212.  \by 13
  213.  \tx "minimalprg als kursbeispiel!"
  214.  \by 13,13
  215.  \tx "sourcename (seq): "
  216.  \by 0
  217. string2:
  218.  \by 13,13
  219.  \tx "targetname (prg): "
  220.  \by 0
  221. ;--------------------------------------
  222. pw:
  223.  \tx ",p,w"
  224. sr:
  225.  \tx ",s,r"
  226. laenge1:
  227.  \by 0
  228. laenge2:
  229.  \by 0
  230. lesename:
  231.  \br 20,0
  232. schreibname:
  233. ;--------------------------------------
  234.